move item insertion logic here from gtk_menu_real_insert(),
authorKristian Rietveld <kris@gtk.org>
Fri, 19 Dec 2003 20:56:19 +0000 (20:56 +0000)
committerKristian Rietveld <kristian@src.gnome.org>
Fri, 19 Dec 2003 20:56:19 +0000 (20:56 +0000)
Fri Dec 19 21:52:46 2003  Kristian Rietveld  <kris@gtk.org>

* gtk/gtkmenu.c (gtk_menu_do_insert): move item insertion logic
here from gtk_menu_real_insert(),
(gtk_menu_real_insert): just call gtk_menu_do_insert(),
(gtk_menu_reorder_child): run _do_insert after inserting the child
(unbreaks _reorder_child, reported by Tim Janik).

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkmenu.c

index 4273c223ff5908b48f45626466da3bbbd070490f..e03e3c25d521eca79b8efb7b560c6bf11228932a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Fri Dec 19 21:52:46 2003  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtkmenu.c (gtk_menu_do_insert): move item insertion logic
+       here from gtk_menu_real_insert(),
+       (gtk_menu_real_insert): just call gtk_menu_do_insert(),
+       (gtk_menu_reorder_child): run _do_insert after inserting the child
+       (unbreaks _reorder_child, reported by Tim Janik).
+
 2003-12-19  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilechooserdefault.c (list_mtime_data_func): Use
index 4273c223ff5908b48f45626466da3bbbd070490f..e03e3c25d521eca79b8efb7b560c6bf11228932a 100644 (file)
@@ -1,3 +1,11 @@
+Fri Dec 19 21:52:46 2003  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtkmenu.c (gtk_menu_do_insert): move item insertion logic
+       here from gtk_menu_real_insert(),
+       (gtk_menu_real_insert): just call gtk_menu_do_insert(),
+       (gtk_menu_reorder_child): run _do_insert after inserting the child
+       (unbreaks _reorder_child, reported by Tim Janik).
+
 2003-12-19  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilechooserdefault.c (list_mtime_data_func): Use
index 4273c223ff5908b48f45626466da3bbbd070490f..e03e3c25d521eca79b8efb7b560c6bf11228932a 100644 (file)
@@ -1,3 +1,11 @@
+Fri Dec 19 21:52:46 2003  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtkmenu.c (gtk_menu_do_insert): move item insertion logic
+       here from gtk_menu_real_insert(),
+       (gtk_menu_real_insert): just call gtk_menu_do_insert(),
+       (gtk_menu_reorder_child): run _do_insert after inserting the child
+       (unbreaks _reorder_child, reported by Tim Janik).
+
 2003-12-19  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilechooserdefault.c (list_mtime_data_func): Use
index 4273c223ff5908b48f45626466da3bbbd070490f..e03e3c25d521eca79b8efb7b560c6bf11228932a 100644 (file)
@@ -1,3 +1,11 @@
+Fri Dec 19 21:52:46 2003  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtkmenu.c (gtk_menu_do_insert): move item insertion logic
+       here from gtk_menu_real_insert(),
+       (gtk_menu_real_insert): just call gtk_menu_do_insert(),
+       (gtk_menu_reorder_child): run _do_insert after inserting the child
+       (unbreaks _reorder_child, reported by Tim Janik).
+
 2003-12-19  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilechooserdefault.c (list_mtime_data_func): Use
index 4273c223ff5908b48f45626466da3bbbd070490f..e03e3c25d521eca79b8efb7b560c6bf11228932a 100644 (file)
@@ -1,3 +1,11 @@
+Fri Dec 19 21:52:46 2003  Kristian Rietveld  <kris@gtk.org>
+
+       * gtk/gtkmenu.c (gtk_menu_do_insert): move item insertion logic
+       here from gtk_menu_real_insert(),
+       (gtk_menu_real_insert): just call gtk_menu_do_insert(),
+       (gtk_menu_reorder_child): run _do_insert after inserting the child
+       (unbreaks _reorder_child, reported by Tim Janik).
+
 2003-12-19  Federico Mena Quintero  <federico@ximian.com>
 
        * gtk/gtkfilechooserdefault.c (list_mtime_data_func): Use
index 25bf3e6500b902a5e97dbe4e4c30a797a557b781..34bc4b20e508c98530c2ded356e122b2b0bb9b7c 100644 (file)
@@ -172,6 +172,9 @@ static void     gtk_menu_scroll_item_visible (GtkMenuShell    *menu_shell,
                                              GtkWidget       *menu_item);
 static void     gtk_menu_select_item       (GtkMenuShell     *menu_shell,
                                            GtkWidget        *menu_item);
+static void     gtk_menu_do_insert         (GtkMenuShell     *menu_shell,
+                                            GtkWidget        *child,
+                                            gint              position);
 static void     gtk_menu_real_insert       (GtkMenuShell     *menu_shell,
                                            GtkWidget        *child,
                                            gint              position);
@@ -964,19 +967,14 @@ gtk_menu_new (void)
 }
 
 static void
-gtk_menu_real_insert (GtkMenuShell     *menu_shell,
-                     GtkWidget        *child,
-                     gint              position)
+gtk_menu_do_insert (GtkMenuShell *menu_shell,
+                    GtkWidget    *child,
+                    gint          position)
 {
   gint i;
   GList *children;
   GtkMenuPrivate *priv;
 
-  if (GTK_WIDGET_REALIZED (menu_shell))
-    gtk_widget_set_parent_window (child, GTK_MENU (menu_shell)->bin_window);
-
-  GTK_MENU_SHELL_CLASS (parent_class)->insert (menu_shell, child, position);
-
   priv = gtk_menu_get_private (GTK_MENU (menu_shell));
 
   if (position < 0)
@@ -1015,6 +1013,19 @@ gtk_menu_real_insert (GtkMenuShell     *menu_shell,
                    position, position + 1);
 }
 
+static void
+gtk_menu_real_insert (GtkMenuShell     *menu_shell,
+                     GtkWidget        *child,
+                     gint              position)
+{
+  if (GTK_WIDGET_REALIZED (menu_shell))
+    gtk_widget_set_parent_window (child, GTK_MENU (menu_shell)->bin_window);
+
+  GTK_MENU_SHELL_CLASS (parent_class)->insert (menu_shell, child, position);
+
+  gtk_menu_do_insert (menu_shell, child, position);
+}
+
 static void
 gtk_menu_tearoff_bg_copy (GtkMenu *menu)
 {
@@ -1772,13 +1783,18 @@ gtk_menu_reorder_child (GtkMenu   *menu,
                         gint       position)
 {
   GtkMenuShell *menu_shell;
+
   g_return_if_fail (GTK_IS_MENU (menu));
   g_return_if_fail (GTK_IS_MENU_ITEM (child));
+
   menu_shell = GTK_MENU_SHELL (menu);
+
   if (g_list_find (menu_shell->children, child))
     {   
       menu_shell->children = g_list_remove (menu_shell->children, child);
-      menu_shell->children = g_list_insert (menu_shell->children, child, position);   
+      menu_shell->children = g_list_insert (menu_shell->children, child, position);
+      gtk_menu_do_insert (menu_shell, child, position);
+
       if (GTK_WIDGET_VISIBLE (menu_shell))
         gtk_widget_queue_resize (GTK_WIDGET (menu_shell));
     }